﻿
namespace NutriLeaf.Web.Model
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies ActivityLevelMetadata as the class
    // that carries additional metadata for the ActivityLevel class.
    [MetadataTypeAttribute(typeof(ActivityLevel.ActivityLevelMetadata))]
    public partial class ActivityLevel
    {

        // This class allows you to attach custom attributes to properties
        // of the ActivityLevel class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ActivityLevelMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ActivityLevelMetadata()
            {
            }

            public string ActivityDescription { get; set; }

            public int ActivityLevelID { get; set; }

            public string ActivityName { get; set; }

            public EntityCollection<UserProfile> UserProfiles { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ArticleMetadata as the class
    // that carries additional metadata for the Article class.
    [MetadataTypeAttribute(typeof(Article.ArticleMetadata))]
    public partial class Article
    {

        // This class allows you to attach custom attributes to properties
        // of the Article class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ArticleMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ArticleMetadata()
            {
            }

            public string AriticleDescription { get; set; }

            public ArticleCategory ArticleCategory { get; set; }

            public int ArticleID { get; set; }

            public EntityCollection<ArticleLike> ArticleLikes { get; set; }

            public string ArticleText { get; set; }

            public string ArticleTitle { get; set; }

            public int CategoryID { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ArticleCategoryMetadata as the class
    // that carries additional metadata for the ArticleCategory class.
    [MetadataTypeAttribute(typeof(ArticleCategory.ArticleCategoryMetadata))]
    public partial class ArticleCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the ArticleCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ArticleCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ArticleCategoryMetadata()
            {
            }

            public EntityCollection<ArticleCategory> ArticleCategory1 { get; set; }

            public ArticleCategory ArticleCategory2 { get; set; }

            public int ArticleCategoryID { get; set; }

            public EntityCollection<Article> Articles { get; set; }

            public string CategoryDescription { get; set; }

            public string CategoryName { get; set; }

            public Nullable<int> SubCategoryID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ArticleLikeMetadata as the class
    // that carries additional metadata for the ArticleLike class.
    [MetadataTypeAttribute(typeof(ArticleLike.ArticleLikeMetadata))]
    public partial class ArticleLike
    {

        // This class allows you to attach custom attributes to properties
        // of the ArticleLike class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ArticleLikeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ArticleLikeMetadata()
            {
            }

            public Article Article { get; set; }

            public int ArticleID { get; set; }

            public int ArticleLikeID { get; set; }

            public DateTime DateStamp { get; set; }

            public bool Liked { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BarcodeMetadata as the class
    // that carries additional metadata for the Barcode class.
    [MetadataTypeAttribute(typeof(Barcode.BarcodeMetadata))]
    public partial class Barcode
    {

        // This class allows you to attach custom attributes to properties
        // of the Barcode class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BarcodeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BarcodeMetadata()
            {
            }

            public string BarCode1 { get; set; }

            public int BarCodeID { get; set; }

            public EntityCollection<BarcodeInFoodIngredient> BarcodeInFoodIngredients { get; set; }

            public BarcodeType BarcodeType { get; set; }

            public int BarCodeTypeID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BarcodeInFoodIngredientMetadata as the class
    // that carries additional metadata for the BarcodeInFoodIngredient class.
    [MetadataTypeAttribute(typeof(BarcodeInFoodIngredient.BarcodeInFoodIngredientMetadata))]
    public partial class BarcodeInFoodIngredient
    {

        // This class allows you to attach custom attributes to properties
        // of the BarcodeInFoodIngredient class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BarcodeInFoodIngredientMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BarcodeInFoodIngredientMetadata()
            {
            }

            public Barcode Barcode { get; set; }

            public int BarcodeID { get; set; }

            public int BarCodeInFoodIngredients { get; set; }

            public FoodIngredient FoodIngredient { get; set; }

            public int FoodIngredientID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BarcodeTypeMetadata as the class
    // that carries additional metadata for the BarcodeType class.
    [MetadataTypeAttribute(typeof(BarcodeType.BarcodeTypeMetadata))]
    public partial class BarcodeType
    {

        // This class allows you to attach custom attributes to properties
        // of the BarcodeType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BarcodeTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BarcodeTypeMetadata()
            {
            }

            public EntityCollection<Barcode> Barcodes { get; set; }

            public int BarcodeTypeID { get; set; }

            public string Description { get; set; }

            public string Name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies C__RefactorLogMetadata as the class
    // that carries additional metadata for the C__RefactorLog class.
    [MetadataTypeAttribute(typeof(C__RefactorLog.C__RefactorLogMetadata))]
    public partial class C__RefactorLog
    {

        // This class allows you to attach custom attributes to properties
        // of the C__RefactorLog class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class C__RefactorLogMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private C__RefactorLogMetadata()
            {
            }

            public Guid OperationKey { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CalorieDiaryMetadata as the class
    // that carries additional metadata for the CalorieDiary class.
    [MetadataTypeAttribute(typeof(CalorieDiary.CalorieDiaryMetadata))]
    public partial class CalorieDiary
    {

        // This class allows you to attach custom attributes to properties
        // of the CalorieDiary class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CalorieDiaryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CalorieDiaryMetadata()
            {
            }

            public int CalorieCount { get; set; }

            public int CalorieDiaryID { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public string Metadata { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CityMetadata as the class
    // that carries additional metadata for the City class.
    [MetadataTypeAttribute(typeof(City.CityMetadata))]
    public partial class City
    {

        // This class allows you to attach custom attributes to properties
        // of the City class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CityMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CityMetadata()
            {
            }

            public int CityID { get; set; }

            public string CityName { get; set; }

            public Country Country { get; set; }

            public int CountryID { get; set; }

            public EntityCollection<Location> Locations { get; set; }

            public EntityCollection<TemperatureDiary> TemperatureDiaries { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CountryMetadata as the class
    // that carries additional metadata for the Country class.
    [MetadataTypeAttribute(typeof(Country.CountryMetadata))]
    public partial class Country
    {

        // This class allows you to attach custom attributes to properties
        // of the Country class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CountryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CountryMetadata()
            {
            }

            public EntityCollection<City> Cities { get; set; }

            public int CountryID { get; set; }

            public EntityCollection<FoodCountry> FoodCountries { get; set; }

            public string Name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DoctorClinicMetadata as the class
    // that carries additional metadata for the DoctorClinic class.
    [MetadataTypeAttribute(typeof(DoctorClinic.DoctorClinicMetadata))]
    public partial class DoctorClinic
    {

        // This class allows you to attach custom attributes to properties
        // of the DoctorClinic class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DoctorClinicMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DoctorClinicMetadata()
            {
            }

            public DateTime DateTimeAdded { get; set; }

            public Nullable<DateTime> DateTimeUpdated { get; set; }

            public string Description { get; set; }

            public EntityCollection<DoctorClinicAppointment> DoctorClinicAppointments { get; set; }

            public int DoctorClinicID { get; set; }

            public EntityCollection<DoctorInDoctorClinic> DoctorInDoctorClinics { get; set; }

            public Location Location { get; set; }

            public int LocationID { get; set; }

            public string Name { get; set; }

            public User User { get; set; }

            public Nullable<int> UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DoctorClinicAppointmentMetadata as the class
    // that carries additional metadata for the DoctorClinicAppointment class.
    [MetadataTypeAttribute(typeof(DoctorClinicAppointment.DoctorClinicAppointmentMetadata))]
    public partial class DoctorClinicAppointment
    {

        // This class allows you to attach custom attributes to properties
        // of the DoctorClinicAppointment class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DoctorClinicAppointmentMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DoctorClinicAppointmentMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public DoctorClinic DoctorClinic { get; set; }

            public int DoctorClinicAppointmentID { get; set; }

            public int DoctorClinicID { get; set; }

            public DoctorProfile DoctorProfile { get; set; }

            public int DoctorProfileID { get; set; }

            public Nullable<TimeSpan> EndTime { get; set; }

            public Nullable<TimeSpan> StartTime { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DoctorInDoctorClinicMetadata as the class
    // that carries additional metadata for the DoctorInDoctorClinic class.
    [MetadataTypeAttribute(typeof(DoctorInDoctorClinic.DoctorInDoctorClinicMetadata))]
    public partial class DoctorInDoctorClinic
    {

        // This class allows you to attach custom attributes to properties
        // of the DoctorInDoctorClinic class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DoctorInDoctorClinicMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DoctorInDoctorClinicMetadata()
            {
            }

            public Nullable<DateTime> DateTimeAdded { get; set; }

            public Nullable<DateTime> DateTimeUpdated { get; set; }

            public DoctorClinic DoctorClinic { get; set; }

            public Nullable<int> DoctorClinicID { get; set; }

            public int DoctorInDoctorClinicID { get; set; }

            public DoctorProfile DoctorProfile { get; set; }

            public Nullable<int> DoctorProfileID { get; set; }

            public Nullable<TimeSpan> EndTime { get; set; }

            public Nullable<TimeSpan> StartTime { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DoctorProfileMetadata as the class
    // that carries additional metadata for the DoctorProfile class.
    [MetadataTypeAttribute(typeof(DoctorProfile.DoctorProfileMetadata))]
    public partial class DoctorProfile
    {

        // This class allows you to attach custom attributes to properties
        // of the DoctorProfile class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DoctorProfileMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DoctorProfileMetadata()
            {
            }

            public DateTime DateTimeAdded { get; set; }

            public DateTime DateTimeUpdated { get; set; }

            public EntityCollection<DoctorClinicAppointment> DoctorClinicAppointments { get; set; }

            public EntityCollection<DoctorInDoctorClinic> DoctorInDoctorClinics { get; set; }

            public int DoctorProfileID { get; set; }

            public DoctorType DoctorType { get; set; }

            public int DoctorTypeID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DoctorTypeMetadata as the class
    // that carries additional metadata for the DoctorType class.
    [MetadataTypeAttribute(typeof(DoctorType.DoctorTypeMetadata))]
    public partial class DoctorType
    {

        // This class allows you to attach custom attributes to properties
        // of the DoctorType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DoctorTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DoctorTypeMetadata()
            {
            }

            public string Description { get; set; }

            public EntityCollection<DoctorProfile> DoctorProfiles { get; set; }

            public int DoctorTypeID { get; set; }

            public string Name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ExerciseMetadata as the class
    // that carries additional metadata for the Exercise class.
    [MetadataTypeAttribute(typeof(Exercise.ExerciseMetadata))]
    public partial class Exercise
    {

        // This class allows you to attach custom attributes to properties
        // of the Exercise class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ExerciseMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ExerciseMetadata()
            {
            }

            public int CalorieBurned { get; set; }

            public DateTime ClientDateTimeStamp { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public TimeSpan Duration { get; set; }

            public int ExcersiseID { get; set; }

            public ExerciseType ExerciseType { get; set; }

            public int ExerciseTypeID { get; set; }

            public string MetaData { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ExerciseTypeMetadata as the class
    // that carries additional metadata for the ExerciseType class.
    [MetadataTypeAttribute(typeof(ExerciseType.ExerciseTypeMetadata))]
    public partial class ExerciseType
    {

        // This class allows you to attach custom attributes to properties
        // of the ExerciseType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ExerciseTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ExerciseTypeMetadata()
            {
            }

            public string Description { get; set; }

            public EntityCollection<Exercise> Exercises { get; set; }

            public int ExerciseTypeID { get; set; }

            public string Name { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FluidDiaryMetadata as the class
    // that carries additional metadata for the FluidDiary class.
    [MetadataTypeAttribute(typeof(FluidDiary.FluidDiaryMetadata))]
    public partial class FluidDiary
    {

        // This class allows you to attach custom attributes to properties
        // of the FluidDiary class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FluidDiaryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FluidDiaryMetadata()
            {
            }

            public DateTime ClientDateTimeStamp { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public int FluidDiaryID { get; set; }

            public int FluidIntakeCount { get; set; }

            public TemperatureDiary TemperatureDiary { get; set; }

            public int TemperatureID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodMetadata as the class
    // that carries additional metadata for the Food class.
    [MetadataTypeAttribute(typeof(Food.FoodMetadata))]
    public partial class Food
    {

        // This class allows you to attach custom attributes to properties
        // of the Food class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodMetadata()
            {
            }

            public DateTime DateTimeAdded { get; set; }

            public DateTime DateTimeUpdated { get; set; }

            public FoodBrand FoodBrand { get; set; }

            public Nullable<int> FoodBrandID { get; set; }

            public EntityCollection<FoodCountry> FoodCountries { get; set; }

            public int FoodID { get; set; }

            public EntityCollection<FoodInFoodCategory> FoodInFoodCategories { get; set; }

            public EntityCollection<FoodIngredientsInFood> FoodIngredientsInFoods { get; set; }

            public EntityCollection<FoodInMeal> FoodInMeals { get; set; }

            public EntityCollection<FoodInPregnancy> FoodInPregnancies { get; set; }

            public EntityCollection<FoodLike> FoodLikes { get; set; }

            public string FoodName { get; set; }

            public EntityCollection<FoodServing> FoodServings { get; set; }

            public EntityCollection<FoodTemperature> FoodTemperatures { get; set; }

            public EntityCollection<FoodTime> FoodTimes { get; set; }

            public HealthRating HealthRating { get; set; }

            public Nullable<int> HealthRatingID { get; set; }

            public EntityCollection<PregnancyProblemFood> PregnancyProblemFoods { get; set; }

            public Recipe Recipe { get; set; }

            public Nullable<int> RecipeID { get; set; }

            public EntityCollection<RestaurantFood> RestaurantFoods { get; set; }

            public User User { get; set; }

            public EntityCollection<UserFoodFav> UserFoodFavs { get; set; }

            public Nullable<int> UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodBrandMetadata as the class
    // that carries additional metadata for the FoodBrand class.
    [MetadataTypeAttribute(typeof(FoodBrand.FoodBrandMetadata))]
    public partial class FoodBrand
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodBrand class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodBrandMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodBrandMetadata()
            {
            }

            public string FoodBrandDescription { get; set; }

            public int FoodBrandID { get; set; }

            public string FoodBrandName { get; set; }

            public EntityCollection<Food> Foods { get; set; }

            public HealthRating HealthRating { get; set; }

            public Nullable<int> HealthRatingID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodCategoryMetadata as the class
    // that carries additional metadata for the FoodCategory class.
    [MetadataTypeAttribute(typeof(FoodCategory.FoodCategoryMetadata))]
    public partial class FoodCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodCategoryMetadata()
            {
            }

            public string Description { get; set; }

            public EntityCollection<FoodCategory> FoodCategory1 { get; set; }

            public FoodCategory FoodCategory2 { get; set; }

            public int FoodCategoryID { get; set; }

            public EntityCollection<FoodInFoodCategory> FoodInFoodCategories { get; set; }

            public string Name { get; set; }

            public Nullable<int> SubCategoryID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodCountryMetadata as the class
    // that carries additional metadata for the FoodCountry class.
    [MetadataTypeAttribute(typeof(FoodCountry.FoodCountryMetadata))]
    public partial class FoodCountry
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodCountry class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodCountryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodCountryMetadata()
            {
            }

            public Country Country { get; set; }

            public int CountryID { get; set; }

            public Food Food { get; set; }

            public int FoodCountryID { get; set; }

            public int FoodID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodDiaryMetadata as the class
    // that carries additional metadata for the FoodDiary class.
    [MetadataTypeAttribute(typeof(FoodDiary.FoodDiaryMetadata))]
    public partial class FoodDiary
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodDiary class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodDiaryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodDiaryMetadata()
            {
            }

            public DateTime ClientDateTimeStamp { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public int FoodDiaryID { get; set; }

            public FoodServing FoodServing { get; set; }

            public int FoodServingID { get; set; }

            public int Quantity { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodInFoodCategoryMetadata as the class
    // that carries additional metadata for the FoodInFoodCategory class.
    [MetadataTypeAttribute(typeof(FoodInFoodCategory.FoodInFoodCategoryMetadata))]
    public partial class FoodInFoodCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodInFoodCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodInFoodCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodInFoodCategoryMetadata()
            {
            }

            public Food Food { get; set; }

            public FoodCategory FoodCategory { get; set; }

            public int FoodCategoryID { get; set; }

            public int FoodID { get; set; }

            public int FoodInFoodCategoryID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodIngredientMetadata as the class
    // that carries additional metadata for the FoodIngredient class.
    [MetadataTypeAttribute(typeof(FoodIngredient.FoodIngredientMetadata))]
    public partial class FoodIngredient
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodIngredient class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodIngredientMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodIngredientMetadata()
            {
            }

            public EntityCollection<BarcodeInFoodIngredient> BarcodeInFoodIngredients { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public int FoodIngredientID { get; set; }

            public EntityCollection<FoodIngredientsInFood> FoodIngredientsInFoods { get; set; }

            public HealthRating HealthRating { get; set; }

            public Nullable<int> HealthRatingID { get; set; }

            public string IngredientDescription { get; set; }

            public string IngredientName { get; set; }

            public EntityCollection<IngredientsAtHome> IngredientsAtHomes { get; set; }

            public NutritionInfo NutritionInfo { get; set; }

            public Nullable<int> NutritionInfoID { get; set; }

            public string Quantity { get; set; }

            public EntityCollection<RecipeIndgredient> RecipeIndgredients { get; set; }

            public EntityCollection<ShoppingCart> ShoppingCarts { get; set; }

            public User User { get; set; }

            public EntityCollection<UserFoodIngredientFav> UserFoodIngredientFavs { get; set; }

            public Nullable<int> UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodIngredientsInFoodMetadata as the class
    // that carries additional metadata for the FoodIngredientsInFood class.
    [MetadataTypeAttribute(typeof(FoodIngredientsInFood.FoodIngredientsInFoodMetadata))]
    public partial class FoodIngredientsInFood
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodIngredientsInFood class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodIngredientsInFoodMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodIngredientsInFoodMetadata()
            {
            }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public FoodIngredient FoodIngredient { get; set; }

            public int FoodIngredientID { get; set; }

            public int FoodIngredientsInFoodID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodInMealMetadata as the class
    // that carries additional metadata for the FoodInMeal class.
    [MetadataTypeAttribute(typeof(FoodInMeal.FoodInMealMetadata))]
    public partial class FoodInMeal
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodInMeal class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodInMealMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodInMealMetadata()
            {
            }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public int FoodInMealID { get; set; }

            public Meal Meal { get; set; }

            public int MealID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodInPregnancyMetadata as the class
    // that carries additional metadata for the FoodInPregnancy class.
    [MetadataTypeAttribute(typeof(FoodInPregnancy.FoodInPregnancyMetadata))]
    public partial class FoodInPregnancy
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodInPregnancy class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodInPregnancyMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodInPregnancyMetadata()
            {
            }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public int FoodsInPregnancyID { get; set; }

            public PregnancyWeek PregnancyWeek { get; set; }

            public Nullable<int> PregnancyWeekID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodLikeMetadata as the class
    // that carries additional metadata for the FoodLike class.
    [MetadataTypeAttribute(typeof(FoodLike.FoodLikeMetadata))]
    public partial class FoodLike
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodLike class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodLikeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodLikeMetadata()
            {
            }

            public DateTime ClientDateTimeStamp { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public int FoodLikeID { get; set; }

            public bool Liked { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodServingMetadata as the class
    // that carries additional metadata for the FoodServing class.
    [MetadataTypeAttribute(typeof(FoodServing.FoodServingMetadata))]
    public partial class FoodServing
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodServing class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodServingMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodServingMetadata()
            {
            }

            public DateTime DateTimeAdded { get; set; }

            public DateTime DateTimeUpdated { get; set; }

            public string Description { get; set; }

            public Food Food { get; set; }

            public EntityCollection<FoodDiary> FoodDiaries { get; set; }

            public int FoodID { get; set; }

            public int FoodServingID { get; set; }

            public Nullable<decimal> MeasurementDescription { get; set; }

            public Nullable<decimal> MetricServingAmount { get; set; }

            public Nullable<decimal> MetricServingUnit { get; set; }

            public Nullable<decimal> NumberOfUnits { get; set; }

            public NutritionInfo NutritionInfo { get; set; }

            public Nullable<int> NutritionInfoID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodTemperatureMetadata as the class
    // that carries additional metadata for the FoodTemperature class.
    [MetadataTypeAttribute(typeof(FoodTemperature.FoodTemperatureMetadata))]
    public partial class FoodTemperature
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodTemperature class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodTemperatureMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodTemperatureMetadata()
            {
            }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public int FoodTemperatureID { get; set; }

            public Nullable<double> TemperatureEnd { get; set; }

            public double TemperatureStart { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FoodTimeMetadata as the class
    // that carries additional metadata for the FoodTime class.
    [MetadataTypeAttribute(typeof(FoodTime.FoodTimeMetadata))]
    public partial class FoodTime
    {

        // This class allows you to attach custom attributes to properties
        // of the FoodTime class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FoodTimeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FoodTimeMetadata()
            {
            }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public int FoodTimeID { get; set; }

            public TimeSpan TimeEnd { get; set; }

            public TimeSpan TimeStart { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ForumThreadMetadata as the class
    // that carries additional metadata for the ForumThread class.
    [MetadataTypeAttribute(typeof(ForumThread.ForumThreadMetadata))]
    public partial class ForumThread
    {

        // This class allows you to attach custom attributes to properties
        // of the ForumThread class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ForumThreadMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ForumThreadMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public ForumThread ForumThread1 { get; set; }

            public ForumThread ForumThread2 { get; set; }

            public int ForumThreadID { get; set; }

            public EntityCollection<ForumThreadReplyID> ForumThreadReplyIDs { get; set; }

            public Nullable<bool> Solved { get; set; }

            public string Text { get; set; }

            public string Title { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ForumThreadReplyIDMetadata as the class
    // that carries additional metadata for the ForumThreadReplyID class.
    [MetadataTypeAttribute(typeof(ForumThreadReplyID.ForumThreadReplyIDMetadata))]
    public partial class ForumThreadReplyID
    {

        // This class allows you to attach custom attributes to properties
        // of the ForumThreadReplyID class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ForumThreadReplyIDMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ForumThreadReplyIDMetadata()
            {
            }

            public Nullable<DateTime> DateTimeStamp { get; set; }

            public ForumThread ForumThread { get; set; }

            public int ForumThreadID { get; set; }

            public int ForumThreadReplyID1 { get; set; }

            public Nullable<bool> IsAnswer { get; set; }

            public string ReplyText { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies FriendMetadata as the class
    // that carries additional metadata for the Friend class.
    [MetadataTypeAttribute(typeof(Friend.FriendMetadata))]
    public partial class Friend
    {

        // This class allows you to attach custom attributes to properties
        // of the Friend class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class FriendMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private FriendMetadata()
            {
            }

            public string DateTimeStamp { get; set; }

            public int FriendID { get; set; }

            public bool RequestAccepted { get; set; }

            public bool RequestBlocked { get; set; }

            public bool RequestIgnored { get; set; }

            public User User { get; set; }

            public User User1 { get; set; }

            public int User1ID { get; set; }

            public int User2ID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies HealthRatingMetadata as the class
    // that carries additional metadata for the HealthRating class.
    [MetadataTypeAttribute(typeof(HealthRating.HealthRatingMetadata))]
    public partial class HealthRating
    {

        // This class allows you to attach custom attributes to properties
        // of the HealthRating class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class HealthRatingMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private HealthRatingMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public EntityCollection<FoodBrand> FoodBrands { get; set; }

            public EntityCollection<FoodIngredient> FoodIngredients { get; set; }

            public EntityCollection<Food> Foods { get; set; }

            public int HealthRatingID { get; set; }

            public EntityCollection<Meal> Meals { get; set; }

            public string MetaData { get; set; }

            public double Rating { get; set; }

            public EntityCollection<Shopping> Shoppings { get; set; }

            public EntityCollection<UserProfile> UserProfiles { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ImageMetadata as the class
    // that carries additional metadata for the Image class.
    [MetadataTypeAttribute(typeof(Image.ImageMetadata))]
    public partial class Image
    {

        // This class allows you to attach custom attributes to properties
        // of the Image class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ImageMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ImageMetadata()
            {
            }

            public string Extention { get; set; }

            public string ImageDescription { get; set; }

            public string ImageFile { get; set; }

            public int ImageID { get; set; }

            public string ImageName { get; set; }

            public EntityCollection<PregnancyWeekImage> PregnancyWeekImages { get; set; }

            public EntityCollection<RecipeImage> RecipeImages { get; set; }

            public int Size { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies IngredientsAtHomeMetadata as the class
    // that carries additional metadata for the IngredientsAtHome class.
    [MetadataTypeAttribute(typeof(IngredientsAtHome.IngredientsAtHomeMetadata))]
    public partial class IngredientsAtHome
    {

        // This class allows you to attach custom attributes to properties
        // of the IngredientsAtHome class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class IngredientsAtHomeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private IngredientsAtHomeMetadata()
            {
            }

            public DateTime DateTimeAdded { get; set; }

            public DateTime DateTimeUpdated { get; set; }

            public FoodIngredient FoodIngredient { get; set; }

            public int FoodIngredientID { get; set; }

            public int IngredientsAtHomeID { get; set; }

            public int Quantity { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies LocationMetadata as the class
    // that carries additional metadata for the Location class.
    [MetadataTypeAttribute(typeof(Location.LocationMetadata))]
    public partial class Location
    {

        // This class allows you to attach custom attributes to properties
        // of the Location class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class LocationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LocationMetadata()
            {
            }

            public City City { get; set; }

            public int CityID { get; set; }

            public DateTime DateTimeAdded { get; set; }

            public DateTime DateTimeUpdated { get; set; }

            public EntityCollection<DoctorClinic> DoctorClinics { get; set; }

            public decimal Latitude { get; set; }

            public int LocationID { get; set; }

            public decimal Longitude { get; set; }

            public EntityCollection<RestaurantBranch> RestaurantBranches { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies MealMetadata as the class
    // that carries additional metadata for the Meal class.
    [MetadataTypeAttribute(typeof(Meal.MealMetadata))]
    public partial class Meal
    {

        // This class allows you to attach custom attributes to properties
        // of the Meal class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class MealMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private MealMetadata()
            {
            }

            public EntityCollection<FoodInMeal> FoodInMeals { get; set; }

            public HealthRating HealthRating { get; set; }

            public Nullable<int> HealthRatingID { get; set; }

            public MealCategory MealCategory { get; set; }

            public int MealCategoryID { get; set; }

            public string MealDescription { get; set; }

            public EntityCollection<MealDiary> MealDiaries { get; set; }

            public int MealID { get; set; }

            public string MealName { get; set; }

            public EntityCollection<UserMealFav> UserMealFavs { get; set; }

            public EntityCollection<UserMeal> UserMeals { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies MealCategoryMetadata as the class
    // that carries additional metadata for the MealCategory class.
    [MetadataTypeAttribute(typeof(MealCategory.MealCategoryMetadata))]
    public partial class MealCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the MealCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class MealCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private MealCategoryMetadata()
            {
            }

            public string CategoryDescription { get; set; }

            public string CategoryName { get; set; }

            public int MealCategoryID { get; set; }

            public EntityCollection<Meal> Meals { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies MealDiaryMetadata as the class
    // that carries additional metadata for the MealDiary class.
    [MetadataTypeAttribute(typeof(MealDiary.MealDiaryMetadata))]
    public partial class MealDiary
    {

        // This class allows you to attach custom attributes to properties
        // of the MealDiary class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class MealDiaryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private MealDiaryMetadata()
            {
            }

            public DateTime ClientDateTimeStamp { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public Meal Meal { get; set; }

            public int MealID { get; set; }

            public int MealLikeID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies MessageMetadata as the class
    // that carries additional metadata for the Message class.
    [MetadataTypeAttribute(typeof(Message.MessageMetadata))]
    public partial class Message
    {

        // This class allows you to attach custom attributes to properties
        // of the Message class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class MessageMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private MessageMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public int MessageID { get; set; }

            public string MessageText { get; set; }

            public int RecievedUserID { get; set; }

            public int SentUserID { get; set; }

            public User User { get; set; }

            public User User1 { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies NotificationMetadata as the class
    // that carries additional metadata for the Notification class.
    [MetadataTypeAttribute(typeof(Notification.NotificationMetadata))]
    public partial class Notification
    {

        // This class allows you to attach custom attributes to properties
        // of the Notification class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class NotificationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private NotificationMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public string Metadata { get; set; }

            public int NotificationID { get; set; }

            public string NotificationText { get; set; }

            public NotificationType NotificationType { get; set; }

            public int NotificationTypeID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies NotificationTypeMetadata as the class
    // that carries additional metadata for the NotificationType class.
    [MetadataTypeAttribute(typeof(NotificationType.NotificationTypeMetadata))]
    public partial class NotificationType
    {

        // This class allows you to attach custom attributes to properties
        // of the NotificationType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class NotificationTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private NotificationTypeMetadata()
            {
            }

            public EntityCollection<Notification> Notifications { get; set; }

            public int NotificationTypeID { get; set; }

            public string TypeDescription { get; set; }

            public string TypeName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies NutritionInfoMetadata as the class
    // that carries additional metadata for the NutritionInfo class.
    [MetadataTypeAttribute(typeof(NutritionInfo.NutritionInfoMetadata))]
    public partial class NutritionInfo
    {

        // This class allows you to attach custom attributes to properties
        // of the NutritionInfo class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class NutritionInfoMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private NutritionInfoMetadata()
            {
            }

            public Nullable<decimal> Calcium { get; set; }

            public Nullable<decimal> Calories { get; set; }

            public Nullable<decimal> Carbs { get; set; }

            public Nullable<decimal> Cholestrol { get; set; }

            public Nullable<DateTime> DateTimeStamp { get; set; }

            public Nullable<decimal> Fiber { get; set; }

            public EntityCollection<FoodIngredient> FoodIngredients { get; set; }

            public EntityCollection<FoodServing> FoodServings { get; set; }

            public Nullable<decimal> Iron { get; set; }

            public Nullable<decimal> MonoSaturatedFat { get; set; }

            public int NutritionInfoID { get; set; }

            public Nullable<decimal> PolyUnsaturatedFat { get; set; }

            public Nullable<decimal> Potassium { get; set; }

            public Nullable<decimal> Protien { get; set; }

            public Nullable<decimal> SaturatedFat { get; set; }

            public Nullable<decimal> Sodium { get; set; }

            public Nullable<decimal> Sugar { get; set; }

            public Nullable<decimal> TransFat { get; set; }

            public Nullable<decimal> VitaminA { get; set; }

            public Nullable<decimal> VitaminC { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyMetadata as the class
    // that carries additional metadata for the Pregnancy class.
    [MetadataTypeAttribute(typeof(Pregnancy.PregnancyMetadata))]
    public partial class Pregnancy
    {

        // This class allows you to attach custom attributes to properties
        // of the Pregnancy class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public Nullable<DateTime> EndDate { get; set; }

            public string MetaData { get; set; }

            public int PregnancyID { get; set; }

            public PregnancyWeek PregnancyWeek { get; set; }

            public Nullable<int> PregnancyWeekID { get; set; }

            public Nullable<DateTime> StartDate { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }

            public EntityCollection<UserPregnancyProblem> UserPregnancyProblems { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyNotificationMetadata as the class
    // that carries additional metadata for the PregnancyNotification class.
    [MetadataTypeAttribute(typeof(PregnancyNotification.PregnancyNotificationMetadata))]
    public partial class PregnancyNotification
    {

        // This class allows you to attach custom attributes to properties
        // of the PregnancyNotification class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyNotificationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyNotificationMetadata()
            {
            }

            public Nullable<int> DayCount { get; set; }

            public string Descirption { get; set; }

            public string MetaData { get; set; }

            public int PregnancyNotificationID { get; set; }

            public PregnancyNotificationType PregnancyNotificationType { get; set; }

            public Nullable<int> PregnancyNotificationTypeID { get; set; }

            public PregnancyWeek PregnancyWeek { get; set; }

            public Nullable<int> PregnancyWeekID { get; set; }

            public string Text { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyNotificationTypeMetadata as the class
    // that carries additional metadata for the PregnancyNotificationType class.
    [MetadataTypeAttribute(typeof(PregnancyNotificationType.PregnancyNotificationTypeMetadata))]
    public partial class PregnancyNotificationType
    {

        // This class allows you to attach custom attributes to properties
        // of the PregnancyNotificationType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyNotificationTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyNotificationTypeMetadata()
            {
            }

            public string Description { get; set; }

            public string Name { get; set; }

            public EntityCollection<PregnancyNotification> PregnancyNotifications { get; set; }

            public int PregnancyNotificationTypeID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyProblemMetadata as the class
    // that carries additional metadata for the PregnancyProblem class.
    [MetadataTypeAttribute(typeof(PregnancyProblem.PregnancyProblemMetadata))]
    public partial class PregnancyProblem
    {

        // This class allows you to attach custom attributes to properties
        // of the PregnancyProblem class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyProblemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyProblemMetadata()
            {
            }

            public string Cure { get; set; }

            public string Description { get; set; }

            public string Name { get; set; }

            public EntityCollection<PregnancyProblemFood> PregnancyProblemFoods { get; set; }

            public int PregnancyProblemsID { get; set; }

            public EntityCollection<UserPregnancyProblem> UserPregnancyProblems { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyProblemFoodMetadata as the class
    // that carries additional metadata for the PregnancyProblemFood class.
    [MetadataTypeAttribute(typeof(PregnancyProblemFood.PregnancyProblemFoodMetadata))]
    public partial class PregnancyProblemFood
    {

        // This class allows you to attach custom attributes to properties
        // of the PregnancyProblemFood class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyProblemFoodMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyProblemFoodMetadata()
            {
            }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public PregnancyProblem PregnancyProblem { get; set; }

            public int PregnancyProblemID { get; set; }

            public int PregnencyProblemFoodID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyWeekMetadata as the class
    // that carries additional metadata for the PregnancyWeek class.
    [MetadataTypeAttribute(typeof(PregnancyWeek.PregnancyWeekMetadata))]
    public partial class PregnancyWeek
    {

        // This class allows you to attach custom attributes to properties
        // of the PregnancyWeek class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyWeekMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyWeekMetadata()
            {
            }

            public string Description { get; set; }

            public EntityCollection<FoodInPregnancy> FoodInPregnancies { get; set; }

            public string Metadata { get; set; }

            public EntityCollection<Pregnancy> Pregnancies { get; set; }

            public EntityCollection<PregnancyNotification> PregnancyNotifications { get; set; }

            public int PregnancyWeekID { get; set; }

            public EntityCollection<PregnancyWeekImage> PregnancyWeekImages { get; set; }

            public int WeekCount { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PregnancyWeekImageMetadata as the class
    // that carries additional metadata for the PregnancyWeekImage class.
    [MetadataTypeAttribute(typeof(PregnancyWeekImage.PregnancyWeekImageMetadata))]
    public partial class PregnancyWeekImage
    {

        // This class allows you to attach custom attributes to properties
        // of the PregnancyWeekImage class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PregnancyWeekImageMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PregnancyWeekImageMetadata()
            {
            }

            public Image Image { get; set; }

            public int ImageID { get; set; }

            public PregnancyWeek PregnancyWeek { get; set; }

            public int PregnancyWeekID { get; set; }

            public int PregnancyWeekImageID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ProfileAnswerMetadata as the class
    // that carries additional metadata for the ProfileAnswer class.
    [MetadataTypeAttribute(typeof(ProfileAnswer.ProfileAnswerMetadata))]
    public partial class ProfileAnswer
    {

        // This class allows you to attach custom attributes to properties
        // of the ProfileAnswer class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ProfileAnswerMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ProfileAnswerMetadata()
            {
            }

            public Nullable<bool> BitAnswer { get; set; }

            public string MetaData { get; set; }

            public int ProfileAnswerID { get; set; }

            public ProfileQuestion ProfileQuestion { get; set; }

            public int ProfileQuestionID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ProfileQuestionMetadata as the class
    // that carries additional metadata for the ProfileQuestion class.
    [MetadataTypeAttribute(typeof(ProfileQuestion.ProfileQuestionMetadata))]
    public partial class ProfileQuestion
    {

        // This class allows you to attach custom attributes to properties
        // of the ProfileQuestion class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ProfileQuestionMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ProfileQuestionMetadata()
            {
            }

            public string Description { get; set; }

            public EntityCollection<ProfileAnswer> ProfileAnswers { get; set; }

            public int ProfileQuestionID { get; set; }

            public string Text { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies PushNotificationMetadata as the class
    // that carries additional metadata for the PushNotification class.
    [MetadataTypeAttribute(typeof(PushNotification.PushNotificationMetadata))]
    public partial class PushNotification
    {

        // This class allows you to attach custom attributes to properties
        // of the PushNotification class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class PushNotificationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private PushNotificationMetadata()
            {
            }

            public string Uri { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeMetadata as the class
    // that carries additional metadata for the Recipe class.
    [MetadataTypeAttribute(typeof(Recipe.RecipeMetadata))]
    public partial class Recipe
    {

        // This class allows you to attach custom attributes to properties
        // of the Recipe class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeMetadata()
            {
            }

            public Nullable<bool> Approved { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public EntityCollection<Food> Foods { get; set; }

            public RecipeCategory RecipeCategory { get; set; }

            public int RecipeCategoryID { get; set; }

            public string RecipeDescription { get; set; }

            public int RecipeID { get; set; }

            public EntityCollection<RecipeImage> RecipeImages { get; set; }

            public RecipeIndgredient RecipeIndgredient { get; set; }

            public EntityCollection<RecipeLike> RecipeLikes { get; set; }

            public string RecipeName { get; set; }

            public EntityCollection<RecipeRead> RecipeReads { get; set; }

            public EntityCollection<RecipeStep> RecipeSteps { get; set; }

            public User User { get; set; }

            public Nullable<int> UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeCategoryMetadata as the class
    // that carries additional metadata for the RecipeCategory class.
    [MetadataTypeAttribute(typeof(RecipeCategory.RecipeCategoryMetadata))]
    public partial class RecipeCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipeCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeCategoryMetadata()
            {
            }

            public string CategoryDescription { get; set; }

            public string CategoryName { get; set; }

            public EntityCollection<RecipeCategory> RecipeCategory1 { get; set; }

            public RecipeCategory RecipeCategory2 { get; set; }

            public int RecipeCategoryID { get; set; }

            public EntityCollection<Recipe> Recipes { get; set; }

            public Nullable<int> SubCategoryID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeImageMetadata as the class
    // that carries additional metadata for the RecipeImage class.
    [MetadataTypeAttribute(typeof(RecipeImage.RecipeImageMetadata))]
    public partial class RecipeImage
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipeImage class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeImageMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeImageMetadata()
            {
            }

            public Image Image { get; set; }

            public int ImageID { get; set; }

            public Recipe Recipe { get; set; }

            public int RecipeID { get; set; }

            public int RecipeImageID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeIndgredientMetadata as the class
    // that carries additional metadata for the RecipeIndgredient class.
    [MetadataTypeAttribute(typeof(RecipeIndgredient.RecipeIndgredientMetadata))]
    public partial class RecipeIndgredient
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipeIndgredient class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeIndgredientMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeIndgredientMetadata()
            {
            }

            public FoodIngredient FoodIngredient { get; set; }

            public int FoodIngredientID { get; set; }

            public Recipe Recipe { get; set; }

            public int RecipeID { get; set; }

            public int RecipeIngredientsID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeLikeMetadata as the class
    // that carries additional metadata for the RecipeLike class.
    [MetadataTypeAttribute(typeof(RecipeLike.RecipeLikeMetadata))]
    public partial class RecipeLike
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipeLike class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeLikeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeLikeMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public bool Liked { get; set; }

            public Recipe Recipe { get; set; }

            public int RecipeID { get; set; }

            public int RecipeLikeID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeReadMetadata as the class
    // that carries additional metadata for the RecipeRead class.
    [MetadataTypeAttribute(typeof(RecipeRead.RecipeReadMetadata))]
    public partial class RecipeRead
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipeRead class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeReadMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeReadMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public Recipe Recipe { get; set; }

            public int RecipeID { get; set; }

            public int RecipeReadCount { get; set; }

            public int RecipeReadID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RecipeStepMetadata as the class
    // that carries additional metadata for the RecipeStep class.
    [MetadataTypeAttribute(typeof(RecipeStep.RecipeStepMetadata))]
    public partial class RecipeStep
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipeStep class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RecipeStepMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeStepMetadata()
            {
            }

            public Recipe Recipe { get; set; }

            public int RecipeID { get; set; }

            public int RecipeStepID { get; set; }

            public int StepCount { get; set; }

            public string Text { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RestaurantMetadata as the class
    // that carries additional metadata for the Restaurant class.
    [MetadataTypeAttribute(typeof(Restaurant.RestaurantMetadata))]
    public partial class Restaurant
    {

        // This class allows you to attach custom attributes to properties
        // of the Restaurant class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RestaurantMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RestaurantMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public EntityCollection<RestaurantBranch> RestaurantBranches { get; set; }

            public EntityCollection<RestaurantFood> RestaurantFoods { get; set; }

            public int RestaurantID { get; set; }

            public string RestaurantName { get; set; }

            public User User { get; set; }

            public Nullable<int> UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RestaurantBranchMetadata as the class
    // that carries additional metadata for the RestaurantBranch class.
    [MetadataTypeAttribute(typeof(RestaurantBranch.RestaurantBranchMetadata))]
    public partial class RestaurantBranch
    {

        // This class allows you to attach custom attributes to properties
        // of the RestaurantBranch class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RestaurantBranchMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RestaurantBranchMetadata()
            {
            }

            public string BranchName { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public Location Location { get; set; }

            public int LocationID { get; set; }

            public string MetaData { get; set; }

            public Restaurant Restaurant { get; set; }

            public int RestaurantBranchID { get; set; }

            public int RestaurantID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RestaurantFoodMetadata as the class
    // that carries additional metadata for the RestaurantFood class.
    [MetadataTypeAttribute(typeof(RestaurantFood.RestaurantFoodMetadata))]
    public partial class RestaurantFood
    {

        // This class allows you to attach custom attributes to properties
        // of the RestaurantFood class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RestaurantFoodMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RestaurantFoodMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public string Metadata { get; set; }

            public Restaurant Restaurant { get; set; }

            public int RestaurantFoodID { get; set; }

            public int RestaurantID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RoleMetadata as the class
    // that carries additional metadata for the Role class.
    [MetadataTypeAttribute(typeof(Role.RoleMetadata))]
    public partial class Role
    {

        // This class allows you to attach custom attributes to properties
        // of the Role class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RoleMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RoleMetadata()
            {
            }

            public string Description { get; set; }

            public string Name { get; set; }

            public int RoleID { get; set; }

            public EntityCollection<User> Users { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ShoppingMetadata as the class
    // that carries additional metadata for the Shopping class.
    [MetadataTypeAttribute(typeof(Shopping.ShoppingMetadata))]
    public partial class Shopping
    {

        // This class allows you to attach custom attributes to properties
        // of the Shopping class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ShoppingMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ShoppingMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public HealthRating HealthRating { get; set; }

            public Nullable<int> HealthRatingID { get; set; }

            public EntityCollection<ShoppingCart> ShoppingCarts { get; set; }

            public int ShoppingID { get; set; }

            public string ShoppingName { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ShoppingCartMetadata as the class
    // that carries additional metadata for the ShoppingCart class.
    [MetadataTypeAttribute(typeof(ShoppingCart.ShoppingCartMetadata))]
    public partial class ShoppingCart
    {

        // This class allows you to attach custom attributes to properties
        // of the ShoppingCart class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ShoppingCartMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ShoppingCartMetadata()
            {
            }

            public bool Bought { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public FoodIngredient FoodIngredient { get; set; }

            public int FoodIngredientsID { get; set; }

            public int Quantity { get; set; }

            public Shopping Shopping { get; set; }

            public int ShoppingID { get; set; }

            public int ShpooingCartID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies SleepMetadata as the class
    // that carries additional metadata for the Sleep class.
    [MetadataTypeAttribute(typeof(Sleep.SleepMetadata))]
    public partial class Sleep
    {

        // This class allows you to attach custom attributes to properties
        // of the Sleep class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class SleepMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private SleepMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public TimeSpan Duration { get; set; }

            public int SleepID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies sysdiagramMetadata as the class
    // that carries additional metadata for the sysdiagram class.
    [MetadataTypeAttribute(typeof(sysdiagram.sysdiagramMetadata))]
    public partial class sysdiagram
    {

        // This class allows you to attach custom attributes to properties
        // of the sysdiagram class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class sysdiagramMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private sysdiagramMetadata()
            {
            }

            public byte[] definition { get; set; }

            public int diagram_id { get; set; }

            public string name { get; set; }

            public int principal_id { get; set; }

            public Nullable<int> version { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TemperatureDiaryMetadata as the class
    // that carries additional metadata for the TemperatureDiary class.
    [MetadataTypeAttribute(typeof(TemperatureDiary.TemperatureDiaryMetadata))]
    public partial class TemperatureDiary
    {

        // This class allows you to attach custom attributes to properties
        // of the TemperatureDiary class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TemperatureDiaryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TemperatureDiaryMetadata()
            {
            }

            public decimal AverageTemperature { get; set; }

            public City City { get; set; }

            public int CityID { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public EntityCollection<FluidDiary> FluidDiaries { get; set; }

            public decimal MaximumTemperature { get; set; }

            public decimal MinimumTemperature { get; set; }

            public int TemperatureID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TipMetadata as the class
    // that carries additional metadata for the Tip class.
    [MetadataTypeAttribute(typeof(Tip.TipMetadata))]
    public partial class Tip
    {

        // This class allows you to attach custom attributes to properties
        // of the Tip class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TipMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TipMetadata()
            {
            }

            public Nullable<bool> Approved { get; set; }

            public TipCategory TipCategory { get; set; }

            public Nullable<int> TipCategoryID { get; set; }

            public int TipID { get; set; }

            public EntityCollection<TipsLike> TipsLikes { get; set; }

            public string TipText { get; set; }

            public EntityCollection<TipViewed> TipVieweds { get; set; }

            public User User { get; set; }

            public Nullable<int> WrittenByUserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TipCategoryMetadata as the class
    // that carries additional metadata for the TipCategory class.
    [MetadataTypeAttribute(typeof(TipCategory.TipCategoryMetadata))]
    public partial class TipCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the TipCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TipCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TipCategoryMetadata()
            {
            }

            public string CategoryDescription { get; set; }

            public string CategoryName { get; set; }

            public Nullable<int> SubCategoryID { get; set; }

            public EntityCollection<TipCategory> TipCategory1 { get; set; }

            public TipCategory TipCategory2 { get; set; }

            public int TipCategoryID { get; set; }

            public EntityCollection<Tip> Tips { get; set; }

            public EntityCollection<UserTipCategory> UserTipCategories { get; set; }

            public EntityCollection<UserTipCategoryID> UserTipCategoryIDs { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TipsLikeMetadata as the class
    // that carries additional metadata for the TipsLike class.
    [MetadataTypeAttribute(typeof(TipsLike.TipsLikeMetadata))]
    public partial class TipsLike
    {

        // This class allows you to attach custom attributes to properties
        // of the TipsLike class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TipsLikeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TipsLikeMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public bool Liked { get; set; }

            public Tip Tip { get; set; }

            public int TipID { get; set; }

            public int TipLikeID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TipViewedMetadata as the class
    // that carries additional metadata for the TipViewed class.
    [MetadataTypeAttribute(typeof(TipViewed.TipViewedMetadata))]
    public partial class TipViewed
    {

        // This class allows you to attach custom attributes to properties
        // of the TipViewed class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TipViewedMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TipViewedMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public Tip Tip { get; set; }

            public int TipID { get; set; }

            public int TipViewedID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TravelMetadata as the class
    // that carries additional metadata for the Travel class.
    [MetadataTypeAttribute(typeof(Travel.TravelMetadata))]
    public partial class Travel
    {

        // This class allows you to attach custom attributes to properties
        // of the Travel class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TravelMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TravelMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public double TravelDistance { get; set; }

            public int TravelID { get; set; }

            public TravelType TravelType { get; set; }

            public int TravelTypeID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies TravelTypeMetadata as the class
    // that carries additional metadata for the TravelType class.
    [MetadataTypeAttribute(typeof(TravelType.TravelTypeMetadata))]
    public partial class TravelType
    {

        // This class allows you to attach custom attributes to properties
        // of the TravelType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class TravelTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TravelTypeMetadata()
            {
            }

            public string Description { get; set; }

            public string Name { get; set; }

            public EntityCollection<Travel> Travels { get; set; }

            public int TravelTypeID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UrinationMetadata as the class
    // that carries additional metadata for the Urination class.
    [MetadataTypeAttribute(typeof(Urination.UrinationMetadata))]
    public partial class Urination
    {

        // This class allows you to attach custom attributes to properties
        // of the Urination class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UrinationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UrinationMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public int UrinationID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserMetadata as the class
    // that carries additional metadata for the User class.
    [MetadataTypeAttribute(typeof(User.UserMetadata))]
    public partial class User
    {

        // This class allows you to attach custom attributes to properties
        // of the User class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserMetadata()
            {
            }

            public EntityCollection<ArticleLike> ArticleLikes { get; set; }

            public EntityCollection<Article> Articles { get; set; }

            public EntityCollection<CalorieDiary> CalorieDiaries { get; set; }

            public Nullable<DateTime> DateTimeStamp { get; set; }

            public EntityCollection<DoctorClinicAppointment> DoctorClinicAppointments { get; set; }

            public EntityCollection<DoctorClinic> DoctorClinics { get; set; }

            public string Email { get; set; }

            public EntityCollection<Exercise> Exercises { get; set; }

            public EntityCollection<FluidDiary> FluidDiaries { get; set; }

            public EntityCollection<FoodDiary> FoodDiaries { get; set; }

            public EntityCollection<FoodIngredient> FoodIngredients { get; set; }

            public EntityCollection<FoodLike> FoodLikes { get; set; }

            public EntityCollection<Food> Foods { get; set; }

            public EntityCollection<ForumThreadReplyID> ForumThreadReplyIDs { get; set; }

            public EntityCollection<ForumThread> ForumThreads { get; set; }

            public EntityCollection<Friend> Friends { get; set; }

            public EntityCollection<Friend> Friends1 { get; set; }

            public EntityCollection<IngredientsAtHome> IngredientsAtHomes { get; set; }

            public EntityCollection<MealDiary> MealDiaries { get; set; }

            public EntityCollection<Message> Messages { get; set; }

            public EntityCollection<Message> Messages1 { get; set; }

            public EntityCollection<Notification> Notifications { get; set; }

            public EntityCollection<Pregnancy> Pregnancies { get; set; }

            public EntityCollection<ProfileAnswer> ProfileAnswers { get; set; }

            public PushNotification PushNotification { get; set; }

            public EntityCollection<RecipeImage> RecipeImages { get; set; }

            public EntityCollection<RecipeLike> RecipeLikes { get; set; }

            public EntityCollection<RecipeRead> RecipeReads { get; set; }

            public EntityCollection<Recipe> Recipes { get; set; }

            public EntityCollection<RestaurantBranch> RestaurantBranches { get; set; }

            public EntityCollection<RestaurantFood> RestaurantFoods { get; set; }

            public EntityCollection<Restaurant> Restaurants { get; set; }

            public Role Role { get; set; }

            public int RoleID { get; set; }

            public EntityCollection<ShoppingCart> ShoppingCarts { get; set; }

            public EntityCollection<Shopping> Shoppings { get; set; }

            public EntityCollection<Sleep> Sleeps { get; set; }

            public EntityCollection<Tip> Tips { get; set; }

            public EntityCollection<TipsLike> TipsLikes { get; set; }

            public EntityCollection<TipViewed> TipVieweds { get; set; }

            public EntityCollection<Travel> Travels { get; set; }

            public EntityCollection<Urination> Urinations { get; set; }

            public bool UserActivated { get; set; }

            public bool UserBlocked { get; set; }

            public EntityCollection<UserFoodFav> UserFoodFavs { get; set; }

            public EntityCollection<UserFoodIngredientFav> UserFoodIngredientFavs { get; set; }

            public int UserID { get; set; }

            public UserMealFav UserMealFav { get; set; }

            public EntityCollection<UserMeal> UserMeals { get; set; }

            public string Username { get; set; }

            public EntityCollection<UserTipCategory> UserTipCategories { get; set; }

            public EntityCollection<UserTipCategoryID> UserTipCategoryIDs { get; set; }

            public EntityCollection<WeightDiary> WeightDiaries { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserFoodFavMetadata as the class
    // that carries additional metadata for the UserFoodFav class.
    [MetadataTypeAttribute(typeof(UserFoodFav.UserFoodFavMetadata))]
    public partial class UserFoodFav
    {

        // This class allows you to attach custom attributes to properties
        // of the UserFoodFav class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserFoodFavMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserFoodFavMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public Food Food { get; set; }

            public int FoodID { get; set; }

            public User User { get; set; }

            public int UserFoodFavID { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserFoodIngredientFavMetadata as the class
    // that carries additional metadata for the UserFoodIngredientFav class.
    [MetadataTypeAttribute(typeof(UserFoodIngredientFav.UserFoodIngredientFavMetadata))]
    public partial class UserFoodIngredientFav
    {

        // This class allows you to attach custom attributes to properties
        // of the UserFoodIngredientFav class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserFoodIngredientFavMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserFoodIngredientFavMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public FoodIngredient FoodIngredient { get; set; }

            public int FoodIngredientID { get; set; }

            public User User { get; set; }

            public int UserFoodIngredientFavsID { get; set; }

            public int UserID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserMealMetadata as the class
    // that carries additional metadata for the UserMeal class.
    [MetadataTypeAttribute(typeof(UserMeal.UserMealMetadata))]
    public partial class UserMeal
    {

        // This class allows you to attach custom attributes to properties
        // of the UserMeal class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserMealMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserMealMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public Meal Meal { get; set; }

            public int MealID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }

            public int UserMealID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserMealFavMetadata as the class
    // that carries additional metadata for the UserMealFav class.
    [MetadataTypeAttribute(typeof(UserMealFav.UserMealFavMetadata))]
    public partial class UserMealFav
    {

        // This class allows you to attach custom attributes to properties
        // of the UserMealFav class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserMealFavMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserMealFavMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public Meal Meal { get; set; }

            public int MealID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }

            public int UserMealFavID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserPregnancyProblemMetadata as the class
    // that carries additional metadata for the UserPregnancyProblem class.
    [MetadataTypeAttribute(typeof(UserPregnancyProblem.UserPregnancyProblemMetadata))]
    public partial class UserPregnancyProblem
    {

        // This class allows you to attach custom attributes to properties
        // of the UserPregnancyProblem class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserPregnancyProblemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserPregnancyProblemMetadata()
            {
            }

            public DateTime ClientDateTimeStamp { get; set; }

            public DateTime DateTimeStamp { get; set; }

            public string Description { get; set; }

            public Pregnancy Pregnancy { get; set; }

            public int PregnancyID { get; set; }

            public PregnancyProblem PregnancyProblem { get; set; }

            public int PregnancyProblemID { get; set; }

            public int UserPregnancyProblemID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserProfileMetadata as the class
    // that carries additional metadata for the UserProfile class.
    [MetadataTypeAttribute(typeof(UserProfile.UserProfileMetadata))]
    public partial class UserProfile
    {

        // This class allows you to attach custom attributes to properties
        // of the UserProfile class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserProfileMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserProfileMetadata()
            {
            }

            public ActivityLevel ActivityLevel { get; set; }

            public Nullable<int> ActivityLevelID { get; set; }

            public Nullable<int> Age { get; set; }

            public Nullable<DateTime> Birthday { get; set; }

            public Nullable<double> BMI { get; set; }

            public Nullable<double> BMR { get; set; }

            public Nullable<int> CurrentWeight { get; set; }

            public DateTime DateTimeAdded { get; set; }

            public DateTime DateTimeUpdated { get; set; }

            public string FirstName { get; set; }

            public Nullable<bool> Gender { get; set; }

            public HealthRating HealthRating { get; set; }

            public Nullable<int> HealthRatingID { get; set; }

            public Nullable<int> Height { get; set; }

            public string LastName { get; set; }

            public Nullable<double> TargetWeight { get; set; }

            public Nullable<double> TotalCalorieLoseGainPerMonth { get; set; }

            public Nullable<double> TotalCalorieLostGainPerDay { get; set; }

            public Nullable<double> TotalCalorieNeedPerDay { get; set; }

            public UserProfile UserProfile1 { get; set; }

            public int UserProfileID { get; set; }

            public UserProfile UserProfiles1 { get; set; }

            public WeightCategory WeightCategory { get; set; }

            public Nullable<int> WeightCategoryID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserTipCategoryMetadata as the class
    // that carries additional metadata for the UserTipCategory class.
    [MetadataTypeAttribute(typeof(UserTipCategory.UserTipCategoryMetadata))]
    public partial class UserTipCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the UserTipCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserTipCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserTipCategoryMetadata()
            {
            }

            public TipCategory TipCategory { get; set; }

            public int TipCategoryID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }

            public int UserTipCategoryID { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserTipCategoryIDMetadata as the class
    // that carries additional metadata for the UserTipCategoryID class.
    [MetadataTypeAttribute(typeof(UserTipCategoryID.UserTipCategoryIDMetadata))]
    public partial class UserTipCategoryID
    {

        // This class allows you to attach custom attributes to properties
        // of the UserTipCategoryID class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserTipCategoryIDMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserTipCategoryIDMetadata()
            {
            }

            public TipCategory TipCategory { get; set; }

            public int TipCategoryID { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }

            public int UserTipCategoryID1 { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies WeightCategoryMetadata as the class
    // that carries additional metadata for the WeightCategory class.
    [MetadataTypeAttribute(typeof(WeightCategory.WeightCategoryMetadata))]
    public partial class WeightCategory
    {

        // This class allows you to attach custom attributes to properties
        // of the WeightCategory class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class WeightCategoryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private WeightCategoryMetadata()
            {
            }

            public string Description { get; set; }

            public string Name { get; set; }

            public EntityCollection<UserProfile> UserProfiles { get; set; }

            public int WeightCategoryID { get; set; }

            public EntityCollection<WeightDiary> WeightDiaries { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies WeightDiaryMetadata as the class
    // that carries additional metadata for the WeightDiary class.
    [MetadataTypeAttribute(typeof(WeightDiary.WeightDiaryMetadata))]
    public partial class WeightDiary
    {

        // This class allows you to attach custom attributes to properties
        // of the WeightDiary class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class WeightDiaryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private WeightDiaryMetadata()
            {
            }

            public DateTime DateTimeStamp { get; set; }

            public User User { get; set; }

            public int UserID { get; set; }

            public double Weight { get; set; }

            public WeightCategory WeightCategory { get; set; }

            public int WeightCategoryID { get; set; }

            public int WeightDiaryID { get; set; }
        }
    }
}
